'''
BMR测试代码
'''

def weightinput():
    '''体重输入'''
    weight = input("体重(kg)：")
    try:
        #保证体重一定为浮点数，否则报错
        weight = float(weight)
    except ValueError:
        return -1
    return weight

def heightinput():
    '''身高输入'''
    height = input("身高(cm)：")
    try:
        #保证身高一定为浮点数，否则报错
        height = float(height)
    except ValueError:
        return -1
    return height

def ageinput():
    '''年龄输入'''
    age = input("年龄：")
    try:
        #保证年龄一定为整数，否则报错
        age = int(age)
    except ValueError:        
        return -1
    return age

def BMRcalculate(sex,weight,height,age):
    if sex == '男':
        BMR = 13.7*weight + 5.0*height - 6.8*age + 66
    elif sex == '女':
        BMR = 9.6*weight + 1.8*height - 4.7*age + 655
    print('基础代谢率(大卡): '+str(BMR))

def BMRtext():
    '''
    用于输入数据，导出输入数据
    '''
    
    #确认是否退出程序
    exitout = input('是否退出程序（y/n）?')
    while exitout != 'y' and exitout != 'n':
        exitout = input("请输入y表示退出或n留在界面:")
        
    if exitout == 'n':
        #确认性别
        sex = input('性别（男/女）：')
        while sex != '男' and sex != '女':
            sex = input("请输入正确的性别（男/女）")
            
        #确认体重
        weight = weightinput()
        while weight <= 0:
            print('体重必须为数字且大于0，请重新输入体重')
            weight = weightinput()


        #确认身高   
        height = heightinput()
        while height <= 0:
            print('身高必须为数字且大于0，请重新输入身高')
            height = heightinput()
            
        #确认年龄
        age = ageinput()
        while age <= 0:
            print('年龄必须为整数且大于0，请重新输入年龄')
            age = ageinput()

        #以下代码执行计算部分
        #如果选择退出则不计算
        BMRcalculate(sex,weight,height,age)
        
    if exitout == 'y':
        exit

BMRtext()
